-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Rewrite the ci.py
script in Rust
#136864
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite the ci.py
script in Rust
#136864
Conversation
The rustc-dev-guide subtree was changed. If this PR only touches the dev guide consider submitting a PR directly to rust-lang/rustc-dev-guide otherwise thank you for updating the dev guide with your changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks very cool. Not an infra reviewer, just some drive-by comments :P
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comments on the documentation
There is a risk (arguably tiny) that may or may not be worth considering, which is that with a stable toolchain bump (through GHA's rustup I think?) that this somehow can't build anymore1 or fail at runtime due to I dunno if a rustup Footnotes |
I wrote a test. Add this to Cargo.toml:
test file:
diffs of main.rs:
tests/jobs.yml:
What do you think? |
It should be possible to pin the toolchain, but it would also mean that we'd need to download a new Rust toolchain on every workflow execution. Not a big deal, but still would be nice to avoid I guess. The same situation held also for the previous Python script, updates to the Ubuntu base image could have broken it. But we manually control which runner image we use, so unless you consider Rust to be severely less stable than Python in this regard, I think it should be fine. It will be a bit more brittle because dependencies will have to be downloaded from crates.io, which can fail sometimes, but if crates.io fails, the rest of the CI workflow would fail anyway.. |
Great point with |
Of course, I'm not saying the python version didn't have this issue :P |
LGTM. You can r=me when you feel it's ready 👍 |
Thanks! I added running tests on CI. I'll do a few tests with try builds. @bors try |
Rewrite the `ci.py` script in Rust It would seem that I would learn by now that any script written in Python will become unmaintainable sooner or later, but alas.. r? `@marcoieni`
💔 Test failed - checks-actions |
@bors try |
Rewrite the `ci.py` script in Rust It would seem that I would learn by now that any script written in Python will become unmaintainable sooner or later, but alas.. r? `@marcoieni` try-job: aarch64-gnu try-job: dist-x86_64-linux-alt
💔 Test failed - checks-actions |
This comment has been minimized.
This comment has been minimized.
Fixed handling of environment variables and reading of the @bors try |
Rewrite the `ci.py` script in Rust It would seem that I would learn by now that any script written in Python will become unmaintainable sooner or later, but alas.. r? `@marcoieni` try-job: aarch64-gnu try-job: dist-x86_64-linux-alt try-job: x86_64-msvc-ext2 Fixes: rust-lang#137013
To avoid including a newline at the end, which broke `only_on_channel` comparison.
A job failed! Check out the build log: (web) (plain) Click to see the possible cause of the failure (guessed by this bot)
|
@bors try |
Rewrite the `ci.py` script in Rust It would seem that I would learn by now that any script written in Python will become unmaintainable sooner or later, but alas.. r? `@marcoieni` try-job: aarch64-gnu try-job: dist-x86_64-linux-alt try-job: x86_64-msvc-ext2 Fixes: rust-lang#137013
☀️ Try build successful - checks-actions |
Ok now I'm confident that the script works as it should. @rustbot ready |
[WIP] Postprocess bootstrap metrics into GitHub summary Based on rust-lang#136864. r? `@ghost`
@marcoieni Once you have a bit of time, could you please recheck if the latest changes look fine, and if so, reapprove? I didn't want to r=you without you taking another look. I have like five branches stacked on top of this 😂 So wanted to get it through the queue. Thanks! |
@bors r+ rollup=never |
@bors p=4 (scheduling) |
☀️ Test successful - checks-actions |
Finished benchmarking commit (4b696e6): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (primary -1.7%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 773.253s -> 774.29s (0.13%) |
It would seem that I would learn by now that any script written in Python will become unmaintainable sooner or later, but alas..
r? @marcoieni
try-job: aarch64-gnu
try-job: dist-x86_64-linux-alt
try-job: x86_64-msvc-ext2
Fixes: #137013